﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VemTransporte.Models.Basica;

namespace VemTransporte.Models.Factory
{
    public class LocalizacaoFactory : ILocalizacaoFactory
    {
        #region Singleton
        private LocalizacaoFactory() { }

        private static volatile LocalizacaoFactory _instance;

        public static LocalizacaoFactory Instance
        {
            get
            {
                if (_instance == null)
                {
                    lock (typeof(LocalizacaoFactory))
                    {
                        if (_instance == null)
                        {
                            _instance = new LocalizacaoFactory();
                        }
                    }
                }
                return _instance;
            }
        }
        #endregion

        public Linha CreateLinha()
        {
            Linha retorno = null;

            retorno = new Linha();
            retorno.Veiculos = new List<Veiculo>();

            return retorno;
        }

        public Horario CreateHorario()
        {
            Horario retorno = null;

            retorno = new Horario();
            return retorno;       
        }

        public Veiculo CreateVeiculo()
        {
            Veiculo retorno = null;

            retorno = new Veiculo();

            retorno.Localizacoes = new List<Localizacao>();

            return retorno;
        }

        public Localizacao CreateLocalizacao()
        {
            Localizacao retorno = null;

            retorno = new Localizacao();

            retorno.Veiculo = new Veiculo();

            return retorno;
        }

    }
}